package cn.fl.ref.crbaseinfo.transform;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.ref.crbaseinfo.vo.CrBaseInfoVO;
import cn.fl.ref.crbaseinfo.vo.CrBaseInfoVO;
import fl.ref.crbaseinfo.dto.CrBaseInfoDTO;
import fl.ref.crbaseinfo.dto.CrBaseInfoDTO;
public class CrBaseInfoVOTransform {
	/**
	 * 分转元
	 * @param number
	 * @return
	 */
	public static BigDecimal fenToYuan(BigDecimal number){
		if(number!=null&&number!=new BigDecimal(0)){
			return number.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
		}
		return null;
	}
	
	/**
	 * 元转分
	 * @param number
	 * @return
	 */
	public static BigDecimal yuanToFen(BigDecimal number){
		if(number!=null&&number!=new BigDecimal(0)){
			return number.multiply(new BigDecimal(100));
		}
		return null;
	}
	
	/**
	 * DTO 转  VO
	 * @param dto
	 * @return
	 */
	public static CrBaseInfoVO toVO(CrBaseInfoDTO dto) {
		CrBaseInfoVO  vo = null;
		if (dto != null) { 
			vo = new CrBaseInfoVO();
			
			vo.setId(dto.getId());
			vo.setCrId(dto.getCrId());
			vo.setCrSbj(dto.getCrSbj());
			vo.setCrNm(dto.getCrNm());
			vo.setCrCtrNo(dto.getCrCtrNo());
			vo.setCcyTp(dto.getCcyTp());
			vo.setFncInsId(dto.getFncInsId());
			//分转元
			vo.setCrLmt(fenToYuan(dto.getCrLmt()));
			vo.setCrBal(fenToYuan(dto.getCrBal()));
			
			vo.setStDt(dto.getStDt());
			vo.setEdDt(dto.getEdDt());
			vo.setCrSt(dto.getCrSt());
			vo.setRvlCr(dto.getRvlCr());
			vo.setIsValid(dto.getIsValid());
			vo.setIsDel(dto.getIsDel());
			vo.setCrtUsrNm(dto.getCrtUsrNm());
			vo.setMdfUsrNm(dto.getMdfUsrNm());
			vo.setRmrk(dto.getRmrk());
			vo.setIsInc(dto.getIsInc());
			vo.setIncCrId(dto.getIncCrId());
			vo.setFncInsNm(dto.getFncInsNm());
			vo.setIncCrNm(dto.getIncCrNm());
			vo.setIncCrLgcId(dto.getIncCrLgcId());
			vo.setScmDsc(dto.getScmDsc());
			vo.setCrAstRltvInfoListVO(CrAstRltvInfoVOTransform.toVOList(dto.getCrAstRltvInfoListDTO()));
			
			vo.setCrtUsrId(dto.getCrtUsrId());
			vo.setCrtTm(dto.getCrtTm());
			vo.setMdfTm(dto.getMdfTm());
			vo.setMdfUsrId(dto.getMdfUsrId());
			vo.setIsPartIn(dto.getIsPartIn());//是否参与合同审核
			vo.setZgFlag(dto.getZgFlag());
			vo.setIsBa(dto.getIsBa());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo
	 * @return
	 */
	public static CrBaseInfoDTO toDTO(CrBaseInfoVO vo) {
		CrBaseInfoDTO dto = null;
		if (vo != null) {
			dto = new CrBaseInfoDTO();
			
			dto.setId(vo.getId());
			dto.setCrId(vo.getCrId());
			dto.setCrNm(vo.getCrNm());
			dto.setCrSbj(vo.getCrSbj());
			dto.setCrCtrNo(vo.getCrCtrNo());
			dto.setCcyTp(vo.getCcyTp());
			dto.setFncInsId(vo.getFncInsId());
			//元转分
			dto.setCrLmt(yuanToFen(vo.getCrLmt()));
			dto.setCrBal(yuanToFen(vo.getCrBal()));
			
			dto.setStDt(vo.getStDt());
			dto.setEdDt(vo.getEdDt());
			dto.setCrSt(vo.getCrSt());
			dto.setRvlCr(vo.getRvlCr());
			dto.setIsValid(vo.getIsValid());
			dto.setIsDel(vo.getIsDel());
			dto.setCrtUsrNm(vo.getCrtUsrNm());
			dto.setMdfUsrNm(vo.getMdfUsrNm());
			dto.setRmrk(vo.getRmrk());
			dto.setIsInc(vo.getIsInc());
			dto.setIncCrId(vo.getIncCrId());
			dto.setFncInsNm(vo.getFncInsNm());
			dto.setIncCrNm(vo.getIncCrNm());
			dto.setIncCrLgcId(vo.getIncCrLgcId());
			dto.setScmDsc(vo.getScmDsc());
			dto.setCrAstRltvInfoListDTO(CrAstRltvInfoVOTransform.toDTOList(vo.getCrAstRltvInfoListVO()));
			
			dto.setCrtUsrId(vo.getCrtUsrId());
			dto.setCrtTm(vo.getCrtTm());
			dto.setMdfTm(vo.getMdfTm());
			dto.setMdfUsrId(vo.getMdfUsrId());
			dto.setIsPartIn(vo.getIsPartIn());////是否参与合同审核
			dto.setZgFlag(vo.getZgFlag());
			dto.setIsBa(vo.getIsBa());
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list
	 * @return
	 */
	public static List<CrBaseInfoVO> toVOList(List<CrBaseInfoDTO> list) {
		List<CrBaseInfoVO>  voList = new ArrayList<CrBaseInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CrBaseInfoDTO po : list) {
				voList.add(toVO(po));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list
	 * @return
	 */
	public static List<CrBaseInfoDTO> toDTOList(List<CrBaseInfoVO> list) {
		List<CrBaseInfoDTO>  dtoList = new ArrayList<CrBaseInfoDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CrBaseInfoVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
	
}
